package com.seuic.hnapps.posdsdk.device_interface;

import android.content.Context;

public interface PosDevice extends BaseInterface {
    /**
     * Init Device Interface
     * Should be called before use any other Device Methods
     *
     * @param context The Android context, should not be null
     * @return 0 when success inited, -1 when failed
     */
    int init(Context context);

    /**
     * Close POS SDK
     * Should be called when other POS functions will not be used.
     */
    void close();

    /**
     * Get the serial number of terminal
     *
     * @return The serial number
     */
    String getTermSerial();

    /**
     * Get the system version of terminal
     *
     * @return The system version
     */
    String getSystemVersion();

    /**
     * Get the model of product
     * @return The product model
     */
    String getProductModel();

    /**
     * Get the service version of terminal
     *
     * @return The service version
     */
    String getServiceVersion();

    /**
     * Get the pinpad Device implement
     *
     * @return The pinpad Device inplement
     */
    PinpadDevice getPinpad();

    /**
     * Get the pinpad Device implement
     *
     * @return The pinpad Device implement
     */
    EmvDevice getEmv();

    /**
     * Get the receipt engine device implement
     *
     * @return The receipt engine Device inplement
     */
    ReceiptEngine getReceiptEngin();

    /**
     * Get the printer device inplement
     *
     * @return The printer Device implement
     */
    PrinterDevice getPrinter();

    PsamDevice getPsamDevice();
}
